package com.example.demo.controller;

import lombok.extern.slf4j.Slf4j;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import javax.servlet.http.HttpServletRequest;

/**
 * @author liuyandeng
 * @date 2023/7/30
 * @Description
 */

@Controller
@ResponseBody
@Slf4j
public class LoginController {

//    private static Logger logger = LoggerFactory.getLogger(LoginController.class);

    //localhost:9090/login.html
    @RequestMapping("/login") // url 与前端的 ajax 参数 url 要一致
    public String login(String username, String password) { // SpringBoot可以直接传参自动获得request对象调用getparameter方法
        log.trace("日志级别 trace");
        log.debug("日志级别 debug");
        log.info("日志级别 info");
        log.warn("日志级别 warn");
        log.error("日志级别 error");
//        logger.trace("日志级别 trace");
//        logger.debug("日志级别 debug");
//        logger.info("日志级别 info");
//        logger.warn("日志级别 warn");
//        logger.error("日志级别 error");


        String result = "未知参数";
        if (StringUtils.hasLength(username) && StringUtils.hasLength(password)
                && username.equals("admin") && password.equals("admin")) {
            result = "恭喜，登录成功";
        } else {
            result = "非法参数";
        }
        return result;
    }

    @RequestMapping("/login3")
    public String login3(HttpServletRequest request) {
        String result = "未知参数";
        String username = request.getParameter("username");
        String password = request.getParameter("password");
        // 非空校验
        if (username != null && !username.equals("") &&
                password != null && !password.equals("")) {
            if (username.equals("admin") && password.equals("admin")) {
                result = "登录成功";
            } else {
                result = "抱歉，用户名或者密码错误，请重试！";
            }
        } else {
            result = "参数异常";
        }
        return result;
    }

    // 这是使用 servlet 的方法从前端获取的数据
    @RequestMapping("/login2") //localhost:9090/login.html
    public String login2(HttpServletRequest req) {
        String result = "未知错误";
        String username = req.getParameter("username");
        String password = req.getParameter("password");
        // 后端也要进行非空校验，后端有一个规则即使永远不要相信前端
        if (username != null && !username.equals("") &&
                password != null && !password.equals("")) {
            // 不是非法参数，验证用户名和密码是否正确
            if (username.equals("admin") && password.equals("admin")) {
                result = "恭喜：登录成功！！";
            } else {
                result = "抱歉，用户名或者密码输入错误，请重试！";
            }
        } else {
            result = "非法参数！！！";
        }
        return result;
    }
}
